1. Field of the Invention
The present invention relates to the dynamic selection of a gamut mapping component of a color management system, and more particularly, to dynamic gamut mapping selection based on characteristics of image data and predictions with regard to a suitable GMA, the predictions based on determined preferences corresponding to the characteristics.
2. Description of the Related Art
A color device processes a color image using the range of colors that are available to it. Unfortunately, the same range of colors are not available across color devices. A color device typically uses a color management system, or module, to transform colors from one color space (e.g., RGB or CMYK) to another. Transformation of color image data into a device's color space typically entails the use of a gamut mapping algorithm (GMA) that maps the colors of an image to the gamut of colors of the color device.
Since it is not often the case that all of the colors of an image are reproducible within a color output device's gamut of colors, a color management system uses a GMA to transform each of the original colors in the device's color space to an appearance space. In addition to transforming the colors of a device's gamut of colors, the color management system usually transforms the colors into the output device's color space. These transformations of colors are ordinarily given in the form of mathematical expressions or as look-up tables.
In one example of a color management system, a CreateTransform program module is used to produce a color transform that includes color space and gamut transformations. The CreateTransform module normally takes as input a list of color device characterizations, called profiles. The GMA is contained in the output device's color profile. The color transform which is produced by CreateTransform becomes input to a TransformColors program module that operates on the input color data using the color transform. A FreeTransform program module returns system resources, such as memory, to the system and is executed once the transform is no longer needed.
FIG. 1 illustrates a processing pipeline used by color management to transform color image data between color spaces and gamuts.
Input device 100 may be, for example, a color scanner which uses the RGB (Red, Green and Blue) color space. In the example, output device 102, which may be a color printer, uses a different color space such as the CMYK (Cyan, Magenta, Yellow and Black) color space. Image data generated by input device 100 using the RGB color space must be converted to CMYK color space for use by output device 102. In addition, those colors in the image data that are not able to be represented in the gamut of colors of output device 102 must be converted to the gamut of output device 102.
Blocks 103 to 105 illustrate a transformation pipeline that is used to perform the color space and gamut transformations. In block 103, the color data received from input device 100 is converted to a color appearance space, or a device-independent color space, such as CIELab. Block 104 performs gamut mapping from the gamut of input device 100 to the gamut of output device 102 using a GMA. Thereafter, the color data is converted from color appearance space to the color space of output device 102. Output device 102 can then generate output using the color data.
Block 104 uses a GMA to perform the gamut mapping, and the same GMA is used to transform an input image regardless of the image. Ideally, one GMA would be able to produce high quality output regardless of the image data; however, there is no known GMA that works best for all image data. For example, one GMA may be best suited for photographic image data but is not desirable when the image data contains graphics or text.
Therefore, it would be beneficial to be able to select a GMA that best fits particular image data. However, conventional approaches require that a user either directly specify a gamut mapping preference, or specify preferences which effect the resulting appearance of the image produced by the color management module.
In one conventional approach, which is described in U.S. Pat. No. 5,704,021 to Smith, et al. and U.S. Pat. No. 5,579,446 to Naik et al., a user specifies color matching options for different types of objects (i.e., text, photo and graphics) via a user interface. For example, the user may identify, for each object type, the type of adjustments to be made between the displayed image and the printed image. This approach is designed for use by a sophisticated user and/or someone willing to experiment with different option selections, or combinations thereof, to achieve a desired result. However, it is less than optimal for the user who either does not know enough, or does not wish to take the time, to specify the appropriate option designations to achieve a desired result.
In U.S. Pat. No. 6,006,013 to Rumph, et al., a PDL (Page Description Language) document creator may specify, in the form of a rendering tag associated with an object within the document, a gamut mapping preference. Based on the creator-generated gamut mapping preference as well as automatically-generated rendering tags, meta-data is generated for the objects in the PDL document that are intended to optimize the printing characteristics of an output device. Since gamut mapping information must be specified by someone, the same drawbacks exist as with the first-described approach.
Therefore, what is needed is an ability to automatically select a GMA based on characteristics of the color image data, and to provide a mechanism whereby a color management system is able to use the automatically-selected GMA.